<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */

namespace App\Controller\admin;

use _PHPStan_27631a2e0\Nette\DI\Attributes\Inject;
use App\Controller\AbstractController;
use App\Model\Admin\Admin;
use App\Model\Admin\AdminRole;
use Hyperf\DbConnection\Model\Model;
use Hyperf\HttpServer\Annotation\AutoController;

#[AutoController]
class Base extends AbstractController
{
    protected Model $model;

    /**
     * 无需登录及鉴权的方法.
     * @var array
     */
    protected array $noNeedLogin = [];

    /**
     * 需要登录无需鉴权的方法.
     * @var array
     */
    protected array $noNeedAuth = [];

    /**
     * 数据限制
     * null 不做限制，任何管理员都可以查看该表的所有数据
     * auth 管理员能看到自己以及自己的子管理员插入的数据
     * personal 管理员只能看到自己插入的数据
     * role 当前角色的数据.
     */
    protected string $dataLimit;

    // 返回隐藏的字段
    protected array $hidden = ['deleted_at'];

    /**
     * 数据限制字段.
     */
    protected string $dataLimitField = 'created_by';


    public function __construct()
    {
        $session = $this->session;
        $admin = $session->get('admin');
        $this->dataLimit='null';
        if ($admin) {
            $this->dataLimit = $admin['role_key'];
        }
        parent::__construct();
    }
}
